package kr.hkit.powerjava.chapter10;

import java.util.Arrays;
import java.util.Random;

public class LottoGenerater2 { //방법2
	//배열 0~44까지 선언 타입은 불리언 f로 초기화 
	//만약 3을 받으면 true로 바뀌고. 
	// 또 3이 나왔는데 true면 중복. 이면 안 넣고.
	// true만 출력하면 끝 
	
	private boolean[] lotto; //바로 생성
	private Random rnd;
	private static final int SIZE = 6;
	
	public LottoGenerater2() { //생성자에서 초기화
		lotto = new boolean [45]; 
		rnd = new Random();
	}
	
	public void getLottoNums(int cnt) {
		for (int i = 0; i<cnt; i++){
			getLottoNum();
		}
	}
	
	public void initLotto(){
		for (int i = 0 ; i < lotto.length; i++) {
			lotto[i] = false; // 둘째 배열 위해서 초기화
		}
	}
	
	 public void getLottoNum(){
		 int num = -1;
		 initLotto(); //초기화해서 2행 넣고 , 3행넣고..
		 for (int i = 0; i < SIZE; i++) {
			 num = rnd.nextInt(45);
			if (lotto[num]){ //true면 중복값 있다는 얘기.
				i--;
			}else{ 			// 중복 없음
				lotto[num] = true;
			}
		}
		 prnLottoNum();
	 }
	 

	 public void prnLottoNum(){ //인덱스 값이 true인 것만 출력
		 for (int i = 0; i < lotto.length; i++) {
			if(lotto[i]) {
				System.out.printf("%3d", i+1); //인덱스+1은 1~45까지.
			}	 
		}
		 System.out.println();
	 }


	public static void main(String[] args) {
		LottoGenerater2 lotto = new LottoGenerater2();
//		System.out.println(lotto);
		lotto.getLottoNums(3);
//		lotto.prnLottoNum();	
	}
} // collection 이용하면 딱 세줄이면 끝나요!!
  // 몇개 하겠습니까? 3하면 3개 나와야되고 - 과제!!
  // 과제 - 2차원 배열 써서 해보세여 
